package controloBD;

import java.util.*;
import java.sql.*;

/**
 * Classe auxiliar para tratar os resultados de uma query.
 * Guarda o resultado de um ResultSet numa tabela,
 * representada por um Vector que integra matrizes do tipo DataElement.
 */
public class QueryResult {

    private Vector tabela = new Vector();

    /**
     * Classe que guarda o resultado de um ResultSet numa tabela,
     * representada por um Vector que integra matrizes do tipo DataElement
     */
//    public void populateData(ResultSet rs) throws SQLException {
//        ResultSetMetaData metaData = rs.getMetaData();
//        int colCnt = metaData.getColumnCount();
//        while (rs.next()) {
//            DataElement[] obj = new DataElement[colCnt];
//            for (int i = 0; i < colCnt; i++) {
//                DataElement element = new DataElement();
//                element.dataType = metaData.getColumnType(i + 1);
//                element.dataTypeName = metaData.getColumnTypeName(i + 1);
//                element.colName = metaData.getColumnName(i + 1);
//                element.value = rs.getObject(i + 1);
//               System.out.println(element.value);
//                obj[i] = element;
//            }
//            tabela.addElement(obj);
//        }
//    }

     public void populateData(ResultSet rs) throws SQLException {
        ResultSetMetaData metaData = rs.getMetaData();
        int colCnt = metaData.getColumnCount();
        while (rs.next()) {
            for (int i = 0; i < colCnt; i++){
             // System.out.println(rs.getObject(i + 1));
                tabela.add(rs.getObject(i + 1));
            }
        }
    }

    /**
     * Inspector para a tabela dos dados retirados do ResultSet
     */
    public Vector tabela() {
        return tabela;
    }

    /**
     * Classe embutida que representa cada elemento que é retirado do
    ResulSet,
     * qualquer que seja o seu tipo
     */
    private class DataElement {

        int dataType;
        String dataTypeName;
        Object value;
        String colName;
    }
}
